//https://leetcode.cn/problems/add-strings/description/
//字符串相加
//给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。
//你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式。

class Solution {
public:
    void reverse(string& str)
    {
        int left = 0, right = str.size() - 1;
        while(left < right)
        {
            swap(str[left++], str[right--]);
        }
    }

    string addStrings(string num1, string num2) {
        reverse(num1);
        reverse(num2);
        string sum;
        int i = 0, next = 0;

        while(i < num1.size() || i < num2.size())
        {
            if(i < num1.size())
                next += num1[i] - '0';
            if(i < num2.size())
                next += num2[i] - '0';
            
            sum.push_back(next % 10 + '0');
            next /= 10;
            i++;
        }

        if(next != 0)
        sum.push_back(next + '0');

        reverse(sum);
        return sum;
    }
};